package com.bigzero.workflow.modules.system.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bigzero.workflow.modules.system.entity.MenuEntity;
import com.bigzero.workflow.modules.system.query.MenuQuery;
import com.bigzero.workflow.modules.system.vo.MenuVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;

/**
 * 菜单dao
 * @Author: fanxinxiong
 * @Date: 2025-02-11 14:48:00
 */
@Mapper
public interface MenuDao extends BaseMapper<MenuEntity>{

    /**
     * 根据主键id查询菜单vo
     * @param id 主键id
     * @return MenuVo
     */
    MenuVo getVoById(String id);

    /**
     * 查询菜单vo集合
     * @param query 查询对象
     * @return List<MenuVo>
     */
    List<MenuVo> selectVoList(MenuQuery query);

    /**
     * 根据map参数查询权限标识集合
     * @param map
     * @return List<String>
     */
    List<String> selectPermsListByMap(HashMap<String, Object> map);

    /**
     * 根据参数查找菜单集合
     * @param map map参数
     * @return List<MenuVo>
     */
    List<MenuVo> selectVoListByMap(HashMap<String, Object> map);

    /**
     * 获取父级菜单集合
     * @return List<MenuEntity>
     */
    List<MenuEntity> getParentMenuList();
}
